// #include <stdio.h>
// int main()
// {
//     int i;
//     int j;
//     int a;
//     while (scanf("%d",&a) != -1)
//     {
//         char arr[a][a];
//         for ( i = 0; i < a; i++)
//         {
//             for ( j = 0; j < a; j++)
//             {
//                 if (j == i)
//                 {
//                     arr[i][j] = '*';
//                 }
//                 else if (j == a - i - 1)
//                 {
//                     arr[i][j] = '*';
//                 }
//                 else
//                 {
//                     arr[i][j] = ' ';
//                 }
//             } 
//         }         
//         for ( i = 0; i < a; i++)
//         {
//             for ( j = 0; j < a; j++)
//             {
//                 printf("%c",arr[i][j]);
//             }
//             printf("\n");
//         }  
//     }    
//     return 0;
// }

// #include <stdio.h>
// int main()
// {
//     int i;
//     int j;
//     int a;
//     while (scanf("%d",&a) != -1)
//     {
//         int b = a + a - 1;
//         char arr[a][b];
//         for ( i = 0; i < a; i++)
//         {
//             for ( j = 0; j < b; j++)
//             {
//                 if (i == 0 || i == a - 1)
//                 {
//                     if (j % 2 == 1)
//                     {
//                         arr[i][j] = ' ';
//                     }
//                     else
//                     {
//                         arr[i][j] = '*';
//                     }
//                 }
//                 else
//                 {
//                     if (j == 0 || j == b - 1)
//                     {
//                         arr[i][j] = '*';
//                     }
//                     else
//                     {
//                         arr[i][j] = ' ';
//                     }
//                 }
//             }
//         }
//         for ( i = 0; i < a; i++)
//         {
//             for ( j = 0; j < b; j++)
//             {
//                 printf("%c",arr[i][j]);
//             }
//             printf("\n");
//         }
//     }
//     return 0;
// }

// #include <stdio.h>
// int main()
// {
//     int i,j;
//     int a,b;
//     int m,n;
//     scanf("%d %d", &a, &b);
//     int arr1[a][b];
//     for ( i = 0; i < a; i++)
//     {   
//         for ( j = 0; j < b; j++)
//         {
//             scanf("%d",&arr1[i][j]);
//         } 
//     }
//     int arr2[b][a];
//     for ( i = 0; i < a; i++)
//     {
//         for ( j = 0; j < b; j++)
//         {
//             arr2[j][i] = arr1[i][j];
//         }  
//     }
//     for ( j = 0; j < b; j++)
//     {
//         for ( i = 0; i < a; i++)
//         {
//             printf("%d ",arr2[j][i]);
//         }  
//         printf("\n");
//     }
//     return 0;
// }

// #include <stdio.h>
// int main()
// {
//     int arr[10];
//     int i;
//     for ( i = 0; i < 10; i++)
//     {
//         scanf("%d",&arr[i]);
//     }
//     for ( i = 9; i >= 0; i--)
//     {
//         printf("%d ",arr[i]);
//     }
//     return 0;
// }

#include <stdio.h>
int main()
{
    int a,b,c;
    scanf("%d %d", &a, &b);
    c = a + b;
    int arr1[a],arr2[b],arr3[c];
    int i,j;
    int count1 = 1;
    int count2 = 1;
    while (count1 > 0)
    {
        for ( i = 0; i < a; i++)
        {
            scanf("%d",&arr1[i]);
        }
        for ( i = 0; i < a - 1; i++)
        {
            if (arr1[i] > arr1[i + 1])
            {
                printf("你输入的序列1不是升序序列,请重新输入:\n");
                count1 = 1;
                break;
            }
            else
            {
                count1--;
            }
        }
    } 
    while (count2 > 0)
    {
        for ( i = 0; i < b; i++)
        {
            scanf("%d",&arr2[i]);
        }
        for ( i = 0; i < b - 1; i++)
        {
            if (arr2[i] > arr2[i + 1])
            {
                printf("你输入的序列2不是升序序列,请重新输入:\n");
                count2 = 1;
                break;
            }
            else
            {
                count2--;
            }
        }
    }
    for ( i = 0; i < a; i++)
    {
        arr3[i] = arr1[i];
    }
     for ( i = 0; i < b; i++)
    {
        arr3[i + a] = arr2[i];
    }
    for ( i = 0; i < c; i++)
    { 
        int min;
        for (j = c - 1 ; j > i; j--)
        {
            if (arr3[j - 1] > arr3[j])
            {
                min = arr3[j];
                arr3[j] = arr3[j - 1];
                arr3[j - 1] = min;
            } 
        }
    }
    for ( i = 0; i < c; i++)
    {
        printf("%d ",arr3[i]);
    }
    return 0;
}

// #include <stdio.h>
// int main()
// {
//     int arr[10];
//     int i;
//     int sum = 0;
//     for ( i = 0; i < 10; i++)
//     {
//         scanf("%d",&arr[i]);
//     }
//     for ( i = 0; i < 10; i++)
//     {
//         sum = sum + arr[i];
//     }
//     int average = sum / 10;
//     printf("average=%d",average);
//     return 0;
// }

// #include <stdio.h>
// int main()
// {
//     int a;
//     int i;
//     scanf("%d",&a);
//     int A[a],B[a],C[a];
//     for ( i = 0; i < a; i++)
//     {
//         scanf("%d",&A[i]);
//     }  
//     for ( i = 0; i < a; i++)
//     {
//         scanf("%d",&B[i]);
//     }
//     for ( i = 0; i < a; i++)
//     {
//         C[i] = A[i];
//     }
//     for ( i = 0; i < a; i++)
//     {
//         A[i] = B[i];
//     }
//     for ( i = 0; i < a; i++)
//     {
//         B[i] = C[i];
//     }
//     printf("A[%d] = { ",a);
//     for ( i = 0; i < a; i++)
//     {
//         printf("%d ",A[i]);
//     }
//     printf("}\nB[%d] = { ",a);
//     for ( i = 0; i < a; i++)
//     {
//         printf("%d ",B[i]);
//     }
//     printf("}");
//     return 0;
// }